// 俄罗斯套娃问题  [[5,4],[6,4],[6,7],[2,3]]  =》 [2,3] => [5,4] => [6,7]  输出 3
/**
 * @param {number[][]} envelopes
 * @return {number}
 */
var maxEnvelopes = function (envelopes) {
  let len = envelopes.length
  if (len === 1) return len
  envelopes.sort((a, b) => {
    if (a[0] !== b[0]) return a[0] - b[0]
    return b[1] - a[1]
  })

  // 全部 h 提出来，使用动态规划 求最长递增子序列

  let arr = []
  for (let i = 0; i < envelopes.length; i++) {
    arr.push(envelopes[i][1])
  }

  let result = 0
  let dp = new Array(len).fill(1)

  for (let i = 1; i < len; i++) {
    for (let j = 0; j < i; j++) {
      if (arr[j] < arr[i]) {
        dp[i] = Math.max(dp[i], dp[j] + 1)
      }
    }
    result = Math.max(result, dp[i])
  }

  return result
};

console.log(maxEnvelopes([[1, 1]]));
